// Generated from java-escape by ANTLR 4.11.1
// jshint ignore: start
import antlr4 from './antlr4/index.js';


const serializedATN = [4,0,31,337,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,
4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,
12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,
2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,
27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,
7,34,2,35,7,35,2,36,7,36,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,
1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,
1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,
1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,
1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,
11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,
1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,
15,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,
1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,
17,1,17,1,17,1,18,1,18,5,18,220,8,18,10,18,12,18,223,9,18,1,19,1,19,1,19,
1,19,1,20,1,20,5,20,231,8,20,10,20,12,20,234,9,20,1,20,1,20,1,21,4,21,239,
8,21,11,21,12,21,240,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,23,1,23,5,
23,253,8,23,10,23,12,23,256,9,23,1,23,1,23,1,24,3,24,261,8,24,1,24,1,24,
1,24,1,24,1,24,1,25,3,25,269,8,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,3,26,
278,8,26,1,26,1,26,1,27,4,27,283,8,27,11,27,12,27,284,1,27,1,27,1,28,1,28,
1,28,1,29,1,29,1,29,1,30,1,30,1,30,3,30,298,8,30,1,31,1,31,1,31,1,32,1,32,
1,32,1,32,1,32,1,32,3,32,309,8,32,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,
1,34,5,34,320,8,34,10,34,12,34,323,9,34,1,34,3,34,326,8,34,1,35,1,35,1,35,
1,35,3,35,332,8,35,1,36,1,36,3,36,336,8,36,1,321,0,37,1,1,3,2,5,3,7,4,9,
5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,
18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,
30,61,31,63,0,65,0,67,0,69,0,71,0,73,0,1,0,7,3,0,65,90,95,95,97,122,4,0,
48,57,65,90,95,95,97,122,2,0,10,10,13,13,2,0,9,9,32,32,4,0,48,57,59,59,65,
90,97,122,2,0,34,34,92,92,6,0,9,10,13,13,32,32,34,35,40,41,92,92,347,0,1,
1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,
1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,
0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,
0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,
47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,
0,0,0,59,1,0,0,0,0,61,1,0,0,0,1,75,1,0,0,0,3,78,1,0,0,0,5,85,1,0,0,0,7,90,
1,0,0,0,9,96,1,0,0,0,11,104,1,0,0,0,13,115,1,0,0,0,15,121,1,0,0,0,17,130,
1,0,0,0,19,136,1,0,0,0,21,145,1,0,0,0,23,154,1,0,0,0,25,166,1,0,0,0,27,172,
1,0,0,0,29,181,1,0,0,0,31,185,1,0,0,0,33,192,1,0,0,0,35,200,1,0,0,0,37,217,
1,0,0,0,39,224,1,0,0,0,41,228,1,0,0,0,43,238,1,0,0,0,45,242,1,0,0,0,47,250,
1,0,0,0,49,260,1,0,0,0,51,268,1,0,0,0,53,275,1,0,0,0,55,282,1,0,0,0,57,288,
1,0,0,0,59,291,1,0,0,0,61,297,1,0,0,0,63,299,1,0,0,0,65,308,1,0,0,0,67,310,
1,0,0,0,69,325,1,0,0,0,71,331,1,0,0,0,73,335,1,0,0,0,75,76,5,105,0,0,76,
77,5,102,0,0,77,2,1,0,0,0,78,79,5,101,0,0,79,80,5,108,0,0,80,81,5,115,0,
0,81,82,5,101,0,0,82,83,5,105,0,0,83,84,5,102,0,0,84,4,1,0,0,0,85,86,5,101,
0,0,86,87,5,108,0,0,87,88,5,115,0,0,88,89,5,101,0,0,89,6,1,0,0,0,90,91,5,
101,0,0,91,92,5,110,0,0,92,93,5,100,0,0,93,94,5,105,0,0,94,95,5,102,0,0,
95,8,1,0,0,0,96,97,5,102,0,0,97,98,5,111,0,0,98,99,5,114,0,0,99,100,5,101,
0,0,100,101,5,97,0,0,101,102,5,99,0,0,102,103,5,104,0,0,103,10,1,0,0,0,104,
105,5,101,0,0,105,106,5,110,0,0,106,107,5,100,0,0,107,108,5,102,0,0,108,
109,5,111,0,0,109,110,5,114,0,0,110,111,5,101,0,0,111,112,5,97,0,0,112,113,
5,99,0,0,113,114,5,104,0,0,114,12,1,0,0,0,115,116,5,119,0,0,116,117,5,104,
0,0,117,118,5,105,0,0,118,119,5,108,0,0,119,120,5,101,0,0,120,14,1,0,0,0,
121,122,5,101,0,0,122,123,5,110,0,0,123,124,5,100,0,0,124,125,5,119,0,0,
125,126,5,104,0,0,126,127,5,105,0,0,127,128,5,108,0,0,128,129,5,101,0,0,
129,16,1,0,0,0,130,131,5,98,0,0,131,132,5,114,0,0,132,133,5,101,0,0,133,
134,5,97,0,0,134,135,5,107,0,0,135,18,1,0,0,0,136,137,5,99,0,0,137,138,5,
111,0,0,138,139,5,110,0,0,139,140,5,116,0,0,140,141,5,105,0,0,141,142,5,
110,0,0,142,143,5,117,0,0,143,144,5,101,0,0,144,20,1,0,0,0,145,146,5,102,
0,0,146,147,5,117,0,0,147,148,5,110,0,0,148,149,5,99,0,0,149,150,5,116,0,
0,150,151,5,105,0,0,151,152,5,111,0,0,152,153,5,110,0,0,153,22,1,0,0,0,154,
155,5,101,0,0,155,156,5,110,0,0,156,157,5,100,0,0,157,158,5,102,0,0,158,
159,5,117,0,0,159,160,5,110,0,0,160,161,5,99,0,0,161,162,5,116,0,0,162,163,
5,105,0,0,163,164,5,111,0,0,164,165,5,110,0,0,165,24,1,0,0,0,166,167,5,109,
0,0,167,168,5,97,0,0,168,169,5,99,0,0,169,170,5,114,0,0,170,171,5,111,0,
0,171,26,1,0,0,0,172,173,5,101,0,0,173,174,5,110,0,0,174,175,5,100,0,0,175,
176,5,109,0,0,176,177,5,97,0,0,177,178,5,99,0,0,178,179,5,114,0,0,179,180,
5,111,0,0,180,28,1,0,0,0,181,182,5,115,0,0,182,183,5,101,0,0,183,184,5,116,
0,0,184,30,1,0,0,0,185,186,5,111,0,0,186,187,5,112,0,0,187,188,5,116,0,0,
188,189,5,105,0,0,189,190,5,111,0,0,190,191,5,110,0,0,191,32,1,0,0,0,192,
193,5,105,0,0,193,194,5,110,0,0,194,195,5,99,0,0,195,196,5,108,0,0,196,197,
5,117,0,0,197,198,5,100,0,0,198,199,5,101,0,0,199,34,1,0,0,0,200,201,5,97,
0,0,201,202,5,100,0,0,202,203,5,100,0,0,203,204,5,95,0,0,204,205,5,115,0,
0,205,206,5,117,0,0,206,207,5,98,0,0,207,208,5,100,0,0,208,209,5,105,0,0,
209,210,5,114,0,0,210,211,5,101,0,0,211,212,5,99,0,0,212,213,5,116,0,0,213,
214,5,111,0,0,214,215,5,114,0,0,215,216,5,121,0,0,216,36,1,0,0,0,217,221,
7,0,0,0,218,220,7,1,0,0,219,218,1,0,0,0,220,223,1,0,0,0,221,219,1,0,0,0,
221,222,1,0,0,0,222,38,1,0,0,0,223,221,1,0,0,0,224,225,5,91,0,0,225,226,
3,69,34,0,226,227,5,93,0,0,227,40,1,0,0,0,228,232,5,34,0,0,229,231,3,71,
35,0,230,229,1,0,0,0,231,234,1,0,0,0,232,230,1,0,0,0,232,233,1,0,0,0,233,
235,1,0,0,0,234,232,1,0,0,0,235,236,5,34,0,0,236,42,1,0,0,0,237,239,3,73,
36,0,238,237,1,0,0,0,239,240,1,0,0,0,240,238,1,0,0,0,240,241,1,0,0,0,241,
44,1,0,0,0,242,243,5,35,0,0,243,244,5,91,0,0,244,245,1,0,0,0,245,246,3,69,
34,0,246,247,5,93,0,0,247,248,1,0,0,0,248,249,6,22,0,0,249,46,1,0,0,0,250,
254,5,35,0,0,251,253,8,2,0,0,252,251,1,0,0,0,253,256,1,0,0,0,254,252,1,0,
0,0,254,255,1,0,0,0,255,257,1,0,0,0,256,254,1,0,0,0,257,258,6,23,0,0,258,
48,1,0,0,0,259,261,5,13,0,0,260,259,1,0,0,0,260,261,1,0,0,0,261,262,1,0,
0,0,262,263,5,10,0,0,263,264,4,24,0,0,264,265,1,0,0,0,265,266,6,24,1,0,266,
50,1,0,0,0,267,269,5,13,0,0,268,267,1,0,0,0,268,269,1,0,0,0,269,270,1,0,
0,0,270,271,5,10,0,0,271,272,4,25,1,0,272,273,1,0,0,0,273,274,6,25,1,0,274,
52,1,0,0,0,275,277,6,26,2,0,276,278,5,13,0,0,277,276,1,0,0,0,277,278,1,0,
0,0,278,279,1,0,0,0,279,280,5,10,0,0,280,54,1,0,0,0,281,283,7,3,0,0,282,
281,1,0,0,0,283,284,1,0,0,0,284,282,1,0,0,0,284,285,1,0,0,0,285,286,1,0,
0,0,286,287,6,27,1,0,287,56,1,0,0,0,288,289,5,40,0,0,289,290,6,28,3,0,290,
58,1,0,0,0,291,292,5,41,0,0,292,293,6,29,4,0,293,60,1,0,0,0,294,298,3,63,
31,0,295,298,3,65,32,0,296,298,3,67,33,0,297,294,1,0,0,0,297,295,1,0,0,0,
297,296,1,0,0,0,298,62,1,0,0,0,299,300,5,92,0,0,300,301,8,4,0,0,301,64,1,
0,0,0,302,303,5,92,0,0,303,309,5,116,0,0,304,305,5,92,0,0,305,309,5,114,
0,0,306,307,5,92,0,0,307,309,5,110,0,0,308,302,1,0,0,0,308,304,1,0,0,0,308,
306,1,0,0,0,309,66,1,0,0,0,310,311,5,92,0,0,311,312,5,59,0,0,312,68,1,0,
0,0,313,314,5,61,0,0,314,315,3,69,34,0,315,316,5,61,0,0,316,326,1,0,0,0,
317,321,5,91,0,0,318,320,9,0,0,0,319,318,1,0,0,0,320,323,1,0,0,0,321,322,
1,0,0,0,321,319,1,0,0,0,322,324,1,0,0,0,323,321,1,0,0,0,324,326,5,93,0,0,
325,313,1,0,0,0,325,317,1,0,0,0,326,70,1,0,0,0,327,332,8,5,0,0,328,332,3,
61,30,0,329,330,5,92,0,0,330,332,3,53,26,0,331,327,1,0,0,0,331,328,1,0,0,
0,331,329,1,0,0,0,332,72,1,0,0,0,333,336,8,6,0,0,334,336,3,61,30,0,335,333,
1,0,0,0,335,334,1,0,0,0,336,74,1,0,0,0,15,0,221,232,240,254,260,268,277,
284,297,308,321,325,331,335,5,0,1,0,6,0,0,1,26,0,1,28,1,1,29,2];


const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN);

const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) );

export default class CMakeLexer extends antlr4.Lexer {

    static grammarFileName = "CMake.g4";
    static channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ];
	static modeNames = [ "DEFAULT_MODE" ];
	static literalNames = [ null, "'if'", "'elseif'", "'else'", "'endif'", 
                         "'foreach'", "'endforeach'", "'while'", "'endwhile'", 
                         "'break'", "'continue'", "'function'", "'endfunction'", 
                         "'macro'", "'endmacro'", "'set'", "'option'", "'include'", 
                         "'add_subdirectory'", null, null, null, null, null, 
                         null, null, null, null, null, "'('", "')'" ];
	static symbolicNames = [ null, null, null, null, null, null, null, null, 
                          null, null, null, null, null, null, null, null, 
                          null, null, null, "ID", "BracketArgument", "QuotedArgument", 
                          "UnquotedArgument", "BracketComment", "LineComment", 
                          "IgnoreNLBetweenArgs", "IgnoreExtraNLBetweenCmds", 
                          "NL", "WS", "LParen", "RParen", "Escape" ];
	static ruleNames = [ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", 
                      "T__7", "T__8", "T__9", "T__10", "T__11", "T__12", 
                      "T__13", "T__14", "T__15", "T__16", "T__17", "ID", 
                      "BracketArgument", "QuotedArgument", "UnquotedArgument", 
                      "BracketComment", "LineComment", "IgnoreNLBetweenArgs", 
                      "IgnoreExtraNLBetweenCmds", "NL", "WS", "LParen", 
                      "RParen", "Escape", "EscapeIdentity", "EscapeEncoded", 
                      "EscapeSemi", "BracketNested", "QuotedElement", "UnquotedElement" ];

    constructor(input) {
        super(input)
        this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache());

            this.nesting = 0;
            this.newLineCount = 1;

    }

    get atn() {
        return atn;
    }
}

CMakeLexer.EOF = antlr4.Token.EOF;
CMakeLexer.T__0 = 1;
CMakeLexer.T__1 = 2;
CMakeLexer.T__2 = 3;
CMakeLexer.T__3 = 4;
CMakeLexer.T__4 = 5;
CMakeLexer.T__5 = 6;
CMakeLexer.T__6 = 7;
CMakeLexer.T__7 = 8;
CMakeLexer.T__8 = 9;
CMakeLexer.T__9 = 10;
CMakeLexer.T__10 = 11;
CMakeLexer.T__11 = 12;
CMakeLexer.T__12 = 13;
CMakeLexer.T__13 = 14;
CMakeLexer.T__14 = 15;
CMakeLexer.T__15 = 16;
CMakeLexer.T__16 = 17;
CMakeLexer.T__17 = 18;
CMakeLexer.ID = 19;
CMakeLexer.BracketArgument = 20;
CMakeLexer.QuotedArgument = 21;
CMakeLexer.UnquotedArgument = 22;
CMakeLexer.BracketComment = 23;
CMakeLexer.LineComment = 24;
CMakeLexer.IgnoreNLBetweenArgs = 25;
CMakeLexer.IgnoreExtraNLBetweenCmds = 26;
CMakeLexer.NL = 27;
CMakeLexer.WS = 28;
CMakeLexer.LParen = 29;
CMakeLexer.RParen = 30;
CMakeLexer.Escape = 31;

CMakeLexer.prototype.action = function(localctx, ruleIndex, actionIndex) {
	switch (ruleIndex) {
	case 26:
		this.NL_action(localctx, actionIndex);
		break;
	case 28:
		this.LParen_action(localctx, actionIndex);
		break;
	case 29:
		this.RParen_action(localctx, actionIndex);
		break;
	default:
		throw "No registered action for:" + ruleIndex;
	}
};


CMakeLexer.prototype.NL_action = function(localctx , actionIndex) {
	switch (actionIndex) {
	case 0:
		this.newLineCount++;
		break;
	default:
		throw "No registered action for:" + actionIndex;
	}
};

CMakeLexer.prototype.LParen_action = function(localctx , actionIndex) {
	switch (actionIndex) {
	case 1:
		this.nesting++;
		break;
	default:
		throw "No registered action for:" + actionIndex;
	}
};

CMakeLexer.prototype.RParen_action = function(localctx , actionIndex) {
	switch (actionIndex) {
	case 2:
		this.nesting--; this.newLineCount = 0;
		break;
	default:
		throw "No registered action for:" + actionIndex;
	}
};
CMakeLexer.prototype.sempred = function(localctx, ruleIndex, predIndex) {
	switch (ruleIndex) {
		case 24:
			return this.IgnoreNLBetweenArgs_sempred(localctx, predIndex);
		case 25:
			return this.IgnoreExtraNLBetweenCmds_sempred(localctx, predIndex);
    	default:
    		throw "No registered predicate for:" + ruleIndex;
    }
};

CMakeLexer.prototype.IgnoreNLBetweenArgs_sempred = function(localctx, predIndex) {
	switch(predIndex) {
		case 0:
			return  this.nesting > 0 ;
		default:
			throw "No predicate with index:" + predIndex;
	}
};

CMakeLexer.prototype.IgnoreExtraNLBetweenCmds_sempred = function(localctx, predIndex) {
	switch(predIndex) {
		case 1:
			return  this.newLineCount > 0 ;
		default:
			throw "No predicate with index:" + predIndex;
	}
};




